Charting programs, such as spreadsheet application programs, enable users to create charts from underlying data in a workbook. In order share charts with other users in a computer network, a user may save a copy of the workbook to a server computer which is accessible by multiple users via connected computers over the network. Users wishing to view charts created from the workbook may access a charting application program running on the server computer which retrieves and calculates the data from the workbook and generates a chart for display on one or more remotely connected computers.
Generating charts from workbook data on a server in a network environment, however, suffers from a number of drawbacks. First, the charting application program running on the server must utilize calculation and memory resources to recalculate underlying workbook data and render chart images for display to multiple users, each time a chart request is made from one or more client computers in the network. Second, these calculation and memory resources are used even when there hasn't been a change to the underlying workbook data (and thus no change in the chart to be rendered for display). Thus, a server fielding multiple chart requests often results in a taxing and often unnecessary utilization of server resources.
It is with respect to these considerations and others that the various embodiments of the present invention have been made.